<?php

require_once(realpath(dirname(__FILE__)) . "/../models/CarcacaDAO.class.php");

require_once (realpath(dirname(__FILE__)) . "/../config/Auth.class.php");

class CarcacaController {

    public function __construct() {

        //A função isset verifica se a variavel foi definida, isso evita que haja 
        //um erro caso a classe não seja chama por um formulario.
        if (isset($_POST['metodo'])) {
            switch ($_POST['metodo']) {
                case 'save':
                    self::save();

                    break;
                case 'edit':
                    self::edit();

                    break;
            }
        }

        if (isset($_GET['metodo'])) {
            switch ($_GET['metodo']) {
                case 'delete':
                    self::delete();
                    
                    break;
            }
        }
    }

    function save() {
        session_start();

        $carcaca = new Carcaca();
        $carcacaDAO = new CarcacaDAO();

        $carcaca->setData_de_entrada($_POST['data_de_entrada']);
        $carcaca->setEspecie($_POST['especie']);
        $carcaca->setLocal_de_origem($_POST['local_de_origem']);
        $carcaca->setResponsavel_pela_entrega($_POST['responsavel_pela_entrega']);
        $carcaca->setData_de_saida($_POST['data_de_saida']);
        $carcaca->setDestino($_POST['destino']);
     
        
        if($carcacaDAO->save($carcaca)){
            $_SESSION['success'] = "Ação realizada com sucesso.";
            
            echo "<script>location.href = '/pat/views/carcaca/';</script>";
        }else{
            $_SESSION['error'] = "Não foi possivel realizar a ação.";
            
            echo "<meta HTTP-EQUIV='Refresh' CONTENT='4; URL=/pat/views/carcaca'>";
        }  
    }

    function listAll() {
        $carcacaDAO = new CarcacaDAO();

        $carcaca = $carcacaDAO->listAll();

        return $carcaca;
    }

    function listById($id) {
        $carcacaDAO = new CarcacaDAO();

        $carcaca = $carcacaDAO->listById($id);

        return $carcaca;
    }

    function edit() {
        session_start();
        Auth::verificarNivelDeAcesso(1);

        $carcaca = new Carcaca();
        $carcacaDAO = new CarcacaDAO();
        
        $carcaca->setId($_POST['id']);
        $carcaca->setData_de_entrada($_POST['data_de_entrada']);
        $carcaca->setEspecie($_POST['especie']);
        $carcaca->setLocal_de_origem($_POST['local_de_origem']);
        $carcaca->setResponsavel_pela_entrega($_POST['responsavel_pela_entrega']);
        $carcaca->setData_de_saida($_POST['data_de_saida']);
        $carcaca->setDestino($_POST['destino']);

    
        if($carcacaDAO->edit($carcaca)){
            $_SESSION['success'] = "Ação realizada com sucesso.";
            
            echo "<script>location.href = '/pat/views/carcaca/';</script>";
        }else{
            $_SESSION['error'] = "Não foi possivel realizar a ação.";
            
            echo "<meta HTTP-EQUIV='Refresh' CONTENT='4; URL=/pat/views/carcaca'>";
        }  
    }

    function delete() {
         session_start();
         Auth::verificarNivelDeAcesso(1);
         
        $carcacaDAO = new CarcacaDAO();

        if($carcacaDAO->delete($_GET['id'])){
            $_SESSION['success'] = "Ação realizada com sucesso.";
            
            echo "<script>location.href = '/pat/views/carcaca/';</script>";
        }else{
            $_SESSION['error'] = "Não foi possivel realizar a ação.";
            
            echo "<meta HTTP-EQUIV='Refresh' CONTENT='4; URL=/pat/views/carcaca'>";
        }  
    }

}

$carcacaController = new CarcacaController();
?>